Copyright (C) 2019 Andreas Kloeckner
import numpy as np
import numpy.linalg as la
In the Bauer-Fike eigenvalue sensitivity bound, an important observation is that, given a diagonalized matrix
$$X^{- 1} A X = D$$that is perturbed by an additive perturbation $E$
$$X^{- 1} (A + E) X = D + F,$$and if we suppose that $\mu$ is an eigenvalue of $A+E$ (and $D+F$), we have
$$\|(\mu I - D)^{- 1}\|^{- 1} = | \mu - \lambda _k |,$$where $\lambda_k$ is the eigenvalue of $A$ (diagonal entry of $D$) closest to $\mu$.
This notebook illustrates this latter fact. To that end, let the following be $D$:
D = np.diag(np.arange(6))
D
mu = 2.1
mu * np.eye(6) - D
la.inv(mu * np.eye(6) - D).round(3)
la.norm(la.inv(mu * np.eye(6) - D), 2)
The actual norm doesn't matter--the norm of a diagonal matrix has to be the biggest (abs. value) diagonal entry:
la.norm(la.inv(mu * np.eye(6) - D), np.inf)
1/ la.norm(la.inv(mu * np.eye(6) - D), 2)
Note that this matches the distance between $\mu$ and the closest entry of $D$.